vs2022创建dll教程[vs怎么创建c]

您所在的位置:网站首页 vs2022 dll vs2022创建dll教程[vs怎么创建c]

vs2022创建dll教程[vs怎么创建c]

2023-04-06 11:09| 来源: 网络整理| 查看: 265

DLL格式的文件怎么创建

DLL文件是动态链接库。一般情况下程序里有方程来把不同的功能分类,下面这个例子就是算长方形面积的。但是当你的程序会很多次用到这个方程的时候,dll可以吧方程存起来给不同程序反复使用。(比如同是有两个程序都需要算长方形面积)

另外,dll最大优势就是这些文件都是在程序运行的时候才会被调用。而不是像一般方程都是在编译的时候调用的。

以C++为例,另外我就当你对dll是什么和基本编程已经有了解了。

最简单创建dll的方法就是用VC++.net

1.先新创建一个 WIN32程序 的project,给个名字(dllexample)

2.在第2步点程序设置,选dll,点完成

3.在dllexample.cpp里面,写你要的function.这里是一个算长方形面积的function.

在function定义之前的extern "C" __declspec(dllexport)就告诉编译器这个function是可以给其他程序在runtime用的。

*********************************************************

// dllexample.cpp : Defines the entry point for the DLL application.

//

#include "stdafx.h"

extern "C" __declspec(dllexport)double BoxArea(double Length,double Width);

BOOL APIENTRY DllMain( HANDLE hModule,

DWORD ul_reason_for_call,

LPVOID lpReserved

)

{

return TRUE;

}

double BoxArea(double Length, double Width){

return Length * Width;

}

****************************************************************

4. 在主菜单选编译porject

5. 在你project存的地方的debug文件夹里就应该可以看见dllexample.dll和dllexample.lib两个文件了

6.接下来你就可以在你的程序里用

extern "C" __declspec(dllimport)来执行dllexample.dll里面的function了。(*.dll和*.lib必须和*.exe在同一个文件夹里。)

一个包含很多头文件源文件的项目,如何生成dll?

1.源代码中的 __declspec(dllexport)

.2.def 文件中的 EXPORTS 语句

3.LINK 命令中的 /EXPORT 规范

另一种生成 DLL 的方法是使用 LIBRARY 模块定义语句。 将 /BASE 和 /DLL 选项连用等效于 LIBRARY 语句。

不要在开发环境中指定该选项;该选项只在命令行上可用。 在用“应用程序向导”创建 DLL 项目时设置该选项。

请注意,如果您在预备步骤中创建了导入库,则在创建 .dll 之前,生成 .dll 时必须传递生成导入库时所传递的同一组对象文件。

在 Visual Studio 开发环境中设置此链接器选项

打开项目的“属性页”对话框。 有关详细信息,请参见设置 Visual C++ 项目属性。

单击“配置属性”文件夹。

单击“常规”属性页。

修改“配置类型”属性。

VS2010怎么创建DLL工程

1

双击打开vs

在电脑上运行visual studio2010软件。

2

新建工程

在弹出的窗口中点击文件,选择新建,然后选择项目。

3

选择win32模板

在弹出的窗口中的已安装模板中选择win32,然后在右侧选中win32项目。

4

设置工程名字和存储路径

在下面的名称处输入工程名,位置处输入工程在磁盘的位置,然后点击确定。

5

下一步

在弹出的窗口中点击下一步 。

6

选择DLL选项

在弹出的窗中选中DLL,然后点击完成。

7

DLL新建完成

弹出的解决方案资源管理器中就是我们新建的DLL工程。

如何注册dll文件?

注册DLL文件的步骤如下:

1、点击开始-运行

regsvr32注册dll文件教程图1

2、假如你的dll文件放在D盘根目录下,那么输入regsvr32 D:\aaa.dll 点击确定即可

3、注意dll文件放置位置要求不高,为了方便可以直接放在C盘根目录下。

4、直接在运行窗口中执行命令也可以达到同样的效果:

regsvr32 c:\Windows\system32\comdlg32.ocx

5、注意在64位的系统中,需要在运行中执行如下命令:

regsvr32 c:\Windows\SysWOW64\comdlg32.ocx

[img]【VC++】如何建立DLL啊

建立DLL文件:

1.在VC6中新建MFC

Appwizard(dll)工程。

2.添加一个新类(CMyClass)。

3.在类的头文件里加一句话,用来发布:Class

_declspec(dllexport)

CMyClass。

4.编译后在Debug里找.dll和.lib文件。

5.调用方法:把这两个文件考入要调用的工程根目录下,头文件里引用:

#include

"MyClass.h"

#pragma

comment(lib,"Dll.lib")

试试吧,没人指导是挺难的,我也是新手,以后多交流。

C#中的DLL文件怎么创建

使用C#生成dll文件并调用

一、创建dll文件:

例如生成一个md5编码判断状态的文件,即,输入一个字符串(string A)和一个32位md5编码(string B),判断此字符串A对应的32位md5编码是否与B相等,如果相等返回true,否则返回false。

打开VS 2005,“文件”--》“新建”--“项目”,选择“Windows 控件库”,命名后点击“确定”,在“UserControl1.cs”中输入以下代码:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Drawing;

using System.Data;

using System.Windows.Forms;

using System.Text;

using System.Security.Cryptography;

namespace md5

{

public partial class Program : UserControl

{

#region MD5 32位加密:GetMd5Str32

/// summary

/// 32位MD5加密

/// /summary

/// param name="strSource"待加密字串/param

/// returns加密后的字串/returns

public static string GetMd5Str32(string strSource)

{

byte[] bytes = Encoding.ASCII.GetBytes(strSource);

byte[] hashValue = ((System.Security.Cryptography.HashAlgorithm)System.Security.Cryptography.CryptoConfig.CreateFromName("MD5")).ComputeHash(bytes);

StringBuilder sb = new StringBuilder();

for (int i = 0; i 16; i++)

{

sb.Append(hashValue[i].ToString("x2"));

}

return sb.ToString().ToUpper();

}

#endregion

#region 核对md5编码是否一致:CheckMd5String()

/// summary

/// 核对md5编码是否一致

/// /summary

/// param name="ConvertString"/param

/// returns如果一致返回true,否则返回false/returns

///

public static bool CheckMd5String(string str1, string str2)

{

string md5String = str1; //需要验证的字符串

string md5DbString = str2; //需要核对的32位md5编码

int result = string.Compare(md5.Program.GetMd5Str32(str1), md5DbString, true);

if (result == 0)

{

return true;

}

else

{

return false;

}

}

#endregion

}

}

修改“UserControl1.Designer.cs”中的命名空间为“md5”,方法为“Program”,即可生成dll文件。

在...\bin\Debug文件假下,可以找到相应的dll文件。

二、部署dll流程:

首先把dll文件放到应用程序...\bin\Debug\下;

然后在解决方案中添加引用:右键鼠标--添加引用--浏览--选择dll放置路径后点击“确定”。

注意:要在应用文件头处使用using md5;命令。

测试应用程序代码,如下:Form1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using md5;

namespace WindowsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

string str1 = textBox1.Text.ToString();

string md5String = textBox2.Text.ToString();

textBox3.Text = md5.Program.GetMd5Str32(str1);

textBox4.Text = md5.Program.CheckMd5String(str1, md5String).ToString();

}

private void button2_Click(object sender, EventArgs e)

{

this.Close();

}

}

}

三、注意点:

1、在C#应用程序开发过程中,加载dll文件时,报错“未能加载文件或程序集“md5, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。”,请指点一下是什么原因?

解决:这是因为加载dll的路径问题,正确加载方式为:在“解决方案”的“引用”文件上右击鼠标,选择“添加引用”---》在“浏览”选项卡中添加引用(注意:自己定义的dll文件不能在“.NET”选项卡中添加。)

------------------------------------------------------------------------------------------------------------------

c#生成DLL文件,内部函数的问题

用C#编写一组处理XML文档的代码,由于要求生成DLL文件,并由外部的其他工具访问动态库中的文件,

但是用Dependency Walker检测我生成的这个DLL文件没有显示任何的函数,以前没做过这方面的东西,求教了

代码如下:

using System;

using System.IO;

using System.Xml;

public class Sample

{

public static void Main()

{

DeleteArg();

}

static void DeleteArg()

{

XmlDocument doc = new XmlDocument();

doc.Load(@"c:\\data1.xml");

XmlNode root = doc.DocumentElement;

XmlNode Node1;

XmlNodeList nodeList = doc.SelectSingleNode("/Entity/Columns").ChildNodes;

foreach (XmlNode xn in nodeList)

{

XmlElement xe = (XmlElement)xn;

if (xe.GetAttribute("Name") == "SysModuleID")

{

xe.RemoveAll();

//xe.RemoveAttribute("Name");//删除Name属性

}

}

doc.Save("c:\\data1.xml");//保存这个文档到文件中

}

}

以上代码实现删除XML文件中某一节点的功能,如何在生成DLL后能够使用检测工具检测出DeleteArg函数,

使用Dependency Walker没检测出该函数是不是以为着这个动态库文件不能被调用.

----

因为.net的程序不是这样把函数放在导出表的, 我记得.net做的dll只导出了一个_CorDllMain的方法,

所以用Dependency Walker是看不出来的. 如果你想看.net做的dll导出了什么内容,可以用反射查看元数据

----

生成这个DLL库文件,是想要别的工具运行这个动态库文件,实现DELETEARG()这个函数的功能

----

可以的

----

你上面的代码不是生成DLL的,而是一个控制台应用程序.

要想创建动态库(DLL),在新建项目窗口中选择"类库", 默认的代码是这样的:

using System;

using System.Collections.Generic;

using System.Text;

namespace ClassLibrary2

{

public class Class1

{

}

}

// 然后添加你的代码.最后代码如下:

using System;

using System.Collections.Generic;

using System.Text;

using System.Xml;

namespace ClassLibrary2

{

public class Class1

{

public void DeleteArg()

{

XmlDocument doc = new XmlDocument();

doc.Load(@"c:\\data1.xml");

XmlNode root = doc.DocumentElement;

XmlNode Node1;

XmlNodeList nodeList = doc.SelectSingleNode("/Entity/Columns").ChildNodes;

foreach (XmlNode xn in nodeList)

{

XmlElement xe = (XmlElement)xn;

if (xe.GetAttribute("Name") == "SysModuleID")

{

xe.RemoveAll();

//xe.RemoveAttribute("Name");//删除Name属性

}

}

doc.Save("c:\\data1.xml");//保存这个文档到文件中

}

}

}

最后编译一下就可以,

在Debug文件夹下回产生一个dll文件,最后在需要的工程里,将这个dll文件引进进去就可以用

关于vs2022创建dll教程和vs怎么创建c的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3